const { defineConfig } = require('@vue/cli-service')

module.exports = defineConfig({
  // 部署应用包时的基本 URL
  publicPath: process.env.NODE_ENV === 'production' ? '/my-project/' : '/',

  // 输出文件目录
  outputDir: 'dist',

  // 静态资源目录 (js, css, img, fonts)
  assetsDir: 'assets',

  // 是否在保存时使用 `eslint-loader` 进行检查
  lintOnSave: process.env.NODE_ENV !== 'production',

  // 生产环境是否生成 sourceMap 文件
  productionSourceMap: false,

  // webpack-dev-server 相关配置
  devServer: {
    // 端口号
    port: 8080,
    // 配置代理
    proxy: {
      '/api': {
        target: 'http://localhost:3000',
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      }
    }
  },

  // 配置 webpack
  configureWebpack: {
    // 设置别名
    resolve: {
      alias: {
        '@': require('path').resolve(__dirname, 'src')
      }
    }
  },

  // CSS 相关选项
  css: {
    // 是否将组件中的 CSS 提取至一个独立的 CSS 文件中
    extract: process.env.NODE_ENV === 'production',
    // 是否为 CSS 开启 source map
    sourceMap: false,
    // 向 CSS 相关的 loader 传递选项
    loaderOptions: {
      sass: {
        additionalData: `@import "@/styles/variables.scss";`
      }
    }
  },

  // 第三方插件配置
  pluginOptions: {
    // ...
  }
})
